package com.example.patient.dto.resp;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Author wxy
 * @Date 2021/1/19 16:01
 * @Version 1.0
 */
@Data
@ApiModel(value = "医生详情返回体")
public class DetailResp implements Serializable {
    private static final long serialVersionUID = -8643996142406672798L;

    @ApiModelProperty(value = "姓名")
    @JSONField(name = "Name")
    private String name;
    @ApiModelProperty(value = "医生职称")
    @JSONField(name = "Title")
    private String title;
    @ApiModelProperty(value = "科室名称")
    @JSONField(name = "dName")
    private String dName;
    @ApiModelProperty(value = "医生头像")
    @JSONField(name = "Head")
    private String head;
    @ApiModelProperty(value = "接诊率")
    @JSONField(name = "Receive")
    private BigDecimal receive;
    @ApiModelProperty(value = "好评率")
    @JSONField(name = "Praise")
    private BigDecimal praise;
    @ApiModelProperty(value = "问诊量")
    @JSONField(name = "Inquiry")
    private Integer inquiry;
    @ApiModelProperty(value = "是否关注收藏")
    @JSONField(name = "isCollection")
    private Boolean isCollection;
    @ApiModelProperty(value = "简介")
    @JSONField(name = "Intro")
    private String intro;
    @ApiModelProperty(value = "执业范围")
    @JSONField(name = "ProfessionScope")
    private String professionScope;
    @ApiModelProperty(value = "职业证书编码")
    @JSONField(name = "CertificateCode")
    private String certificateCode;
    @ApiModelProperty(value = "公告")
    @JSONField(name = "notice")
    private String notice;
    @ApiModelProperty(value = "comment")
    @JSONField(name = "Comment")
    private List<CommentResp> comment;
    @ApiModelProperty(value = "inquiryService")
    @JSONField(name = "InquiryService")
    private List<InquiryServiceResp> inquiryService;
    @ApiModelProperty(value = "是否启用排班")
    private Boolean IsPlant;
    @ApiModelProperty(value = "排班信息")
    private List<Plant> plantList;

    @ApiModelProperty(value = "评论总数")
    private long total;
    @Data
    public static class CommentResp implements Serializable {
        private static final long serialVersionUID = -3189296672211590420L;

        @ApiModelProperty(value = "name")
        @JSONField(name = "Name")
        private String name;
        @ApiModelProperty(value = "dScore")
        @JSONField(name = "DScore")
        private String dScore;
        @ApiModelProperty(value = "createTime")
        @JSONField(name = "CreateTime")
        private String createTime;
        @ApiModelProperty(value = "dRemark")
        @JSONField(name = "DRemark")
        private String dRemark;
        @ApiModelProperty(value = "re")
        @JSONField(name = "Re")
        private String re;
    }

    @Data
    public static class InquiryServiceResp implements Serializable {
        private static final long serialVersionUID = 6577788769945159249L;

        @ApiModelProperty(value = "aType")
        @JSONField(name = "aType")
        private Integer aType;
        @ApiModelProperty(value = "isOpen")
        @JSONField(name = "IsOpen")
        private Boolean isOpen;
        @ApiModelProperty(value = "price")
        @JSONField(name = "Price")
        private BigDecimal price;
        @ApiModelProperty(value = "rule")
        @JSONField(name = "Rule")
        private String rule;
        @ApiModelProperty(value = "valid")
        @JSONField(name = "Valid")
        private Integer valid;
    }

    @Data
    public static class Plant{
        @ApiModelProperty(value = "排班日期")
        private Date PlantTime;
        @ApiModelProperty(value = "排班信息")
        private List<PlantOneDay> oneDayList;

        @Data
        public static class PlantOneDay{
            @ApiModelProperty(value = "排班类型")
            private Byte timeType;
            @ApiModelProperty(value = "排班类型 1:上午 2:下午 3:晚间")
            private String timeTypeName;
            @ApiModelProperty(value = "排班开始时间")
            private String startTime;
            @ApiModelProperty(value = "排班结束时间")
            private String endTime;
            @ApiModelProperty(value = "总共号源 0:不限制号源数")
            private int countOrder;
            @ApiModelProperty(value = "剩余号源")
            private int lastOrder;
        }
    }

}
